package com.mp3.demo.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.ApiResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mp3.demo.entity.User;
import com.mp3.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 用户表 前端控制器
 * </p>
 *
 * @author hc
 * @since 2018-07-31
 */
@RestController
@RequestMapping("/user")
public class UserController {

  @Autowired
  private UserService userService;

  @RequestMapping("list")
  public ApiResult list(){

    User user = new User();
    user.setCompanyId(2);
    QueryWrapper<User> wrapper = new QueryWrapper<>(user);
    List<User> list = userService.selectList(wrapper);
   return ApiResult.ok(list);
  }

  /**
   * 自己的sql
   * @return
   */
  @RequestMapping("selectByCusttom")
  public ApiResult<List<User>> selectByCusttom(){
    return ApiResult.ok(userService.selectByCustom());
  }

  @RequestMapping("page")
  public  ApiResult page(){

    IPage page =  userService.selectPage(new Page<User>(1,10),null);
    return ApiResult.ok(page);
  }
  /*方法测试
   批量删除
   根据 columnMap 条件，删除记录
   删除（根据ID 批量删除）
   查询（根据 columnMap 条件）
   查询（根据ID 批量查询）
   自己写的sql，并翻页实现
*/
  /*
  代码生成器:
  修改jdbc 对应的java类型
*/

  /*乐观锁插件 使用*/

  /*多数据源的配置 简单-> 复杂
  *  sharding-jdbc研究
   * */

  /*多租户配置 代码实现*/
  /*通用枚举类 注入 和现在的业务场景调研   */
  /*spring security 和自己实现登陆 */
  /*利用session 实现单点登录 */

  //更深层次 电商实战二期看完，conding,
  //更深层次 阿里 dubbo 微服务框架 研究
  //java 本身一些东西 回头看
}

